package view;

import com.opensymphony.xwork2.ActionSupport;

import controller.LoginManager;

import model.KlsUsuario;

import org.apache.struts2.ServletActionContext;


public class LoginAction extends ActionSupport {
    /**
             *
             */
    private static final long serialVersionUID = 1L;
    private String userName;
    private String password;
    private LoginManager loginManager;
    private KlsUsuario usuario = new KlsUsuario();

    public LoginAction() {
        loginManager = new LoginManager();
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    // all struts logic here
    public String execute() {
        usuario = loginManager.load(getUserName());

        if (usuario != null) {
            if (usuario.getNombreUsuario().equals(getUserName()) &&
                    usuario.getClave().equals(getPassword())) {
                ServletActionContext.getRequest().getSession().setAttribute("loggedInUser", usuario.getNombreUsuario());
                
                ServletActionContext.getRequest().getSession().setAttribute("loggedInIdUser", usuario.getIdUsuario());
                //ServletActionContext.getRequest().getSession().setAttribute("objUser", usuario);                

                //addActionMessage(" Usuario valido !");
                return "login-success";
            } else {
                addActionError("Clave incorrecta !");

                return "login-error";
            }
        }

        addActionError("Usuario no encontrado !");

        return "login-error";
    }

    // simple validation
    public void validate() {
        if (userName.trim().equalsIgnoreCase("") ||
                password.trim().equalsIgnoreCase("")) {
            addActionError("Usuario y Clave son requeridos !");
        }
    }

    public LoginManager getLoginManager() {
        return loginManager;
    }

    public KlsUsuario getUsuario() {
        return usuario;
    }
}
